package com.nbsaas.boot.product.data.repository;

import com.nbsaas.boot.product.data.entity.PageTemplate;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.jpa.repository.support.JpaRepositoryImplementation;
import org.springframework.data.repository.query.Param;

import java.io.Serializable;
import java.util.List;
import java.util.Optional;

/**
* 页面模板-数据处理功能
*/
public interface PageTemplateRepository extends JpaRepositoryImplementation<PageTemplate, Serializable> {

    /**
     * 根据页面类型查找模板
     */
    List<PageTemplate> findByPageType(String pageType);

    /**
     * 根据状态查找模板
     */
    List<PageTemplate> findByStatus(String status);

    /**
     * 查找默认模板
     */
    Optional<PageTemplate> findByIsDefaultTrue();

    /**
     * 根据编码查找模板
     */
    Optional<PageTemplate> findByCode(String code);

    /**
     * 查找已发布的模板
     */
    @Query("SELECT pt FROM PageTemplate pt WHERE pt.publishStatus = 'PUBLISHED'")
    List<PageTemplate> findPublishedTemplates();

    /**
     * 根据页面类型和状态查找模板
     */
    @Query("SELECT pt FROM PageTemplate pt WHERE pt.pageType = :pageType AND pt.status = :status")
    List<PageTemplate> findByPageTypeAndStatus(@Param("pageType") String pageType, @Param("status") String status);
} 